#ifndef THREADPOOL_H_
#define THREADPOOL_H_

#include "cmdTask.h"
#include "my_header.h"
#include "taskQueue.h"
#include "tidArr.h"
#include "transFile.h"

#define threadPool_t ThreadPool

typedef struct threadPool_s
{
    _taskQueue_t _q;
    _tidArr_t _tidArr;
    pthread_mutex_t _mutex;
    pthread_cond_t _cond;
    int _exitFlag;
} threadPool_t;

void work(const int netfd); // 预留接口

// 线程池初始化
// 傅瀚民
// 用于初始化线程池，生成工人线程

void threadPool_init(threadPool_t *pool, // 线程池指针
                     int workerNum);     // 工人线程数

// TCP初始化
// 傅瀚民
// 返回值：初始化完毕的SOCKFD
// 用于将IP和端口绑定到SOCKFD，并LISTEN

int tcp_init(const char *ip,    // IP字符串
             const char *port); // 端口字符串

int epollAdd(int epfd, int fd);

int epollDel(int epfd, int fd);

#endif
